Various communication systems exist today to allow electronic devices such as computers to communicate and exchange data and other types of information such as voice and multimedia communications (e.g., video, sound, data) over local and distributed networks. Various wireless communication systems, such as Wireless Local Area Networks (WLAN) also allow mobile computers to communicate with each other and other computers connected to Wide Area Networks (WAN) such as Internet.
Telecommunications systems apply low-density parity-check (LDPC) codes to provide error correction capability. These LDPC codes are being applied to a variety of telecommunications standards, including, for example, Digital Video Broadcast Via Satellite (DVB-S2), the Institute of Electrical and Electronics Engineers (IEEE) 802.11n Wireless LAN proposal, the IEEE 802.16e Wireless Metropolitan Area Network (MAN) proposal, among others. In many telecommunications error correction applications, it may be desirable to have a LDPC decoder that is reconfigurable to decode a variety of codes in a single receiver and to have a radio product available as soon as a standard is finalized.
Error correction codes are an essential component of many wireless standards. Three types of codes that are currently being used are convolutional codes (usually decoded using the Viterbi algorithm), turbo codes (decoded using the BCJR algorithm, a forward-backward a posteriori probability (APP) decoding algorithm published by Bahl, Cocke, Jelinek, and Raviv), and most recently LPDC codes (decoded using the Message Passing Algorithm (MPA)). A computational element common to all three of these algorithms is a variation of the Add-Compare-Select (ACS) operation. In many telecommunications error correction applications, it may be desirable to have a version of the ACS algorithm that is reconfigurable to support a variety of decoders.